package net.danielpaz.pucc.poo.trabalho.control;

import net.danielpaz.pucc.poo.trabalho.model.Funcionario;
import net.danielpaz.pucc.poo.trabalho.model.FuncionarioDAO;
import net.danielpaz.pucc.poo.trabalho.model.Motorista;
import net.danielpaz.pucc.poo.trabalho.model.MotoristaDAO;
//import net.danielpaz.pucc.poo.trabalho.view.GuiConsultarFuncionario1;
import net.danielpaz.pucc.poo.trabalho.view.GuiConsultarFuncionario;

public class ControllerFunc {

	protected MotoristaDAO motDAO;
	protected FuncionarioDAO funcDAO;
	
	public ControllerFunc() {
		funcDAO = new FuncionarioDAO();
		motDAO = new MotoristaDAO();
	}
	
	public boolean inserirFuncionario (boolean isMotorista, Funcionario f, Motorista m) {
		
		boolean inseriu = false;
		
		funcDAO.func.setCpf(f.getCpf());
		funcDAO.func.setNome(f.getNome());
		funcDAO.func.setTelefone(f.getTelefone());
		funcDAO.func.setId(f.getId());
		
		if (funcDAO.atualizar(1).equals("Operacao realizada com sucesso!")) {
			
			inseriu = true;
			
			if (isMotorista) {
				
				motDAO = new MotoristaDAO();			
				motDAO.mot.setNumCNH(m.getNumCNH());
				motDAO.mot.setCategoria(m.getCategoria());
				motDAO.mot.setId_funcionario(m.getId_funcionario());
				
				if (motDAO.atualizar(1).equals("Operacao realizada com sucesso!")) {
					inseriu = true;
				}
				
			}
			
		}
		
		return inseriu;
		
	}
	
	public Funcionario consultarFunc(String id) {	
		return funcDAO.localizar(Integer.parseInt(id)); 
	}
	
	public Motorista consultarMot(String id) {
		return motDAO.localizar(Integer.parseInt(id));
	}
	
	public String excluirFunc(String id) {
		
		funcDAO.func.setId(Integer.parseInt(id));
		
		return funcDAO.atualizar(3);
	}
	
	public String excluirMot(String id) {
		
		motDAO.mot.setId_funcionario(Integer.parseInt(id));
		return motDAO.atualizar(3);
		
	}
	
	public String alterarFunc(String id, Funcionario f, Motorista m){
		
		funcDAO.func.setId(f.getId());
		funcDAO.func.setCpf(f.getCpf());
		funcDAO.func.setNome(f.getNome());
		funcDAO.func.setTelefone(f.getTelefone());
		
		funcDAO.atualizar(2);
		
		motDAO.mot.setCategoria(m.getCategoria());
		motDAO.mot.setId_funcionario(m.getId_funcionario());
		motDAO.mot.setNumCNH(m.getNumCNH());
		motDAO.mot.setId_funcionario(Integer.parseInt(id));
		
		return motDAO.atualizar(2);
	}
	
}
